unit Functies;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,IniFiles,StrUtils;

type
   Tbws= record
     bnr: integer;
     soort: Integer;
     regel: string[80];
    end;

   Tsubs = record
     nr: integer;
     Start: string[14];
     Eind: string[14];
     Lengte: string[14];
     Regel1: string[100];
     Regel2: string[100];
   end;

procedure LaadBWSProjectBestand;
procedure OpslaanBWSProjectBestand;
procedure OpslaanUserInstellingen;
procedure LaadUserInstellingen;
procedure LaadBookMarks;
function GetWindowsLanguage: string;

implementation

uses
  Main;

var
  FBws: File of Tbws;
  Fsubs: file of Tsubs;
  RBws: Tbws;
  Rsubs: Tsubs;

procedure OpslaanBWSProjectBestand;
var
  BwsOpslaan: TSaveDialog;
  i: Integer;
begin
  try
    BwsOpslaan := TSaveDialog.Create(HoofdScherm);
    BwsOpslaan.Filter := 'BWS bestanden|*.BWS';
    BwsOpslaan.DefaultExt := '.BWS';
    if BwsOpslaan.Execute then
    begin
       AssignFile(FBws, BwsOpslaan.FileName);
       ReWrite(FBws);
        if Main.HoofdScherm.BookMarks.Items.Count > 0 then
        begin
           for i := 0 to Main.HoofdScherm.BookMarks.Items.Count - 1 do
           begin
              RBws.bnr := StrToInt(Main.HoofdScherm.BookMarks.Items.Item[i].Caption);
              RBws.soort := Main.HoofdScherm.BookMarks.Items.Item[i].ImageIndex;
              RBws.regel := Trim(Main.HoofdScherm.BookMarks.Items.Item[i].SubItems.Strings[0]);
              write(Fbws,RBws);
           end;
        end;

        if Main.HoofdScherm.RegelsLijst.Items.Count > 0 then
        begin
          for i := 0 to Main.HoofdScherm.RegelsLijst.Items.Count - 1 do
          begin
            Rsubs.nr :=  StrToInt(Main.HoofdScherm.RegelsLijst.Items.Item[i].SubItems.Strings[0]);
            Rsubs.Start := Main.HoofdScherm.RegelsLijst.Items.Item[i].SubItems.Strings[1];
            Rsubs.Eind := Main.HoofdScherm.RegelsLijst.Items.Item[i].SubItems.Strings[2];
            Rsubs.Lengte := Main.HoofdScherm.RegelsLijst.Items.Item[i].SubItems.Strings[3];
            Rsubs.Regel1 := Main.HoofdScherm.RegelsLijst.Items.Item[i].SubItems.Strings[4];
            Rsubs.Regel2 := Main.HoofdScherm.RegelsLijst.Items.Item[i].SubItems.Strings[5];
            write(Fsubs,Rsubs);
          end;
        end;
    end;

  finally
    CloseFile(Fsubs);
    BwsOpslaan.Free;
  end;


end;

procedure LaadBWSProjectBestand;
var
  i : integer;
  bwsopen: TOpenDialog;
begin
   bwsopen := TOpenDialog.Create(HoofdScherm);
   bwsopen.Filter := 'BWS bestanden|*.BWS';
   if bwsopen.Execute then
   begin
     ShowMessage('ok');
   end;
   bwsopen.Free;
end;

function GetWindowsLanguage: string;
var
  WinLanguage: array [0..50] of char;
begin
  VerLanguageName(GetSystemDefaultLangID, WinLanguage, 50);
  Result := StrPas(WinLanguage);
end;

procedure LaadBookMarks;
begin
   Main.HoofdScherm.BookMark1.Caption := Main.HoofdScherm.bm1.Text;
   Main.HoofdScherm.BookMark2.Caption := Main.HoofdScherm.bm2.Text;
   Main.HoofdScherm.BookMark3.Caption := Main.HoofdScherm.bm3.Text;
   Main.HoofdScherm.BookMark4.Caption := Main.HoofdScherm.bm4.Text;
end;

procedure OpslaanUserInstellingen;
var
 op: TIniFile;

begin
  try
    op := TIniFile.Create(AnsiLeftStr(ParamStr(0),Length(ParamStr(0))-4)+'.ini');

    with op do
    begin
      //Scherm layout opslaan.
      WriteInteger('Scherm','VideoH',Main.HoofdScherm.RzSplitter2.Position);
     // WriteInteger('Scherm','TrackBW',Main.HoofdScherm.RzSplitter6.Position);
      WriteInteger('Scherm','SplitVB',Main.HoofdScherm.RzSplitter1.Position);
      WriteInteger('Scherm','SplitBI',Main.HoofdScherm.RzSplitter5.Position);
    //  WriteInteger('Scherm','ControlsV',Main.HoofdScherm.RzSplitter4.Position);
      WriteInteger('Scherm','RegelsV',Main.HoofdScherm.RzSplitter3.Position);
      //Instellingen Scherm
      WriteInteger('Settings','FontSize',StrToInt(Main.HoofdScherm.IFontVideo.Text));
      //Bookmarks
      WriteString('Settings','BookMark1',Trim(Main.HoofdScherm.bm1.Text));
      WriteString('Settings','BookMark2',Trim(Main.HoofdScherm.bm2.Text));
      WriteString('Settings','BookMark3',Trim(Main.HoofdScherm.bm3.Text));
      WriteString('Settings','BookMark4',Trim(Main.HoofdScherm.bm4.Text));
      //Delay ms
      Writestring('settings','MS',Trim(Main.HoofdScherm.TijdVar.Text));
      //Devixl 25-2-2010
      WriteString('Settings','Achar',Trim(Main.HoofdScherm.LengteRegels.Text));
      WriteInteger('Settings','Aopslaan',Main.HoofdScherm.AutoOpslaanCombo.ItemIndex);
    end;

  finally
    op.Free;
  end;

end;

procedure LaadUserInstellingen;
var
  op : TIniFile;
begin
 if FileExists(AnsiLeftStr(ParamStr(0),Length(ParamStr(0))-4)+'.ini') then
 begin
  try
   op := TIniFile.Create(AnsiLeftStr(ParamStr(0),Length(ParamStr(0))-4)+'.ini');

     with op do
     begin
      // Scherm layout laden
      Main.HoofdScherm.RzSplitter2.Position := ReadInteger('Scherm','VideoH',200);
      //Main.HoofdScherm.RzSplitter6.Position := ReadInteger('Scherm','TrackBW',230);
      Main.HoofdScherm.RzSplitter1.Position := ReadInteger('Scherm','SplitVB',174);
      Main.HoofdScherm.RzSplitter5.Position := ReadInteger('Scherm','SplitBI',286);
     // Main.HoofdScherm.RzSplitter4.Position := ReadInteger('Scherm','ControlsV',417);
     // Main.HoofdScherm.RzSplitter3.Position := ReadInteger('Scherm','RegelsV',158);
      //Instellingen scherm
      Main.HoofdScherm.IFontVideo.Text := IntToStr(ReadInteger('Settings','FontSize',10));
      //Bookmarks
      Main.HoofdScherm.bm1.Text := Trim(ReadString('Settings','BookMark1','Nacontrole Nodig'));
      Main.HoofdScherm.bm2.Text := Trim(ReadString('Settings','BookMark2','Sync problemen'));
      Main.HoofdScherm.bm3.Text := Trim(ReadString('Settings','BookMark3','Moeilijk woord'));
      Main.HoofdScherm.bm4.Text := Trim(ReadString('Settings','BookMark4','Overig'));
      //Delay
      Main.HoofdScherm.TijdVar.Text := ReadString('Settings','MS','100');
      //Devixl 25-2-2010
      Main.HoofdScherm.LengteRegels.Text := ReadString('Settings','Achar','50');
      Main.HoofdScherm.AutoOpslaanCombo.ItemIndex := ReadInteger('Settings','Aopslaan',0)
     end;

     Main.HoofdScherm.VeranderFontVideo;

  finally

   op.Free;

  end;
  end;
end;
end.
